import hashlib

# from rest_framework.views import exception_handler

# from myapp.serializers import ErrorLogSerializer

def md5value(key):
    input_name = hashlib.md5()
    input_name.update(key.encode("utf-8"))
    md5str = (input_name.hexdigest()).lower()
    # print('计算md5:', md5str)
    return md5str


def get_ip(request):
    """
    获取请求者的IP信息
    """
    # HTTP 头部，以字典的形式进行存储
    x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
    if x_forwarded_for:
        ip = x_forwarded_for.split(',')[0]
    else:
        ip = request.META.get('REMOTE_ADDR')
    return ip

def get_ua(request):
    """
    获取请求者的IP信息
    """
    # 获取请求对象的 META 属性，这是一个包含了所有 HTTP 头的字典。
    ua = request.META.get('HTTP_USER_AGENT')
    # 字符串切片操作，它返回 ua 字符串的前200个字符。如果 ua 是空或者不在请求头中，这个操作会返回一个空字符串。
    # 由于 User-Agent 头可能会包含非常多的信息，所以返回前200个字符通常足够用于大多数用途。
    return ua[0:200]